<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/10/10
 * Time: 9:41
 */

class SQL
{
    private $Driver; //实际操作的数据库驱动子类
    private $connection;// 公用的数据库连接变量

    /**
     * @param $databaseType
     * @return bool
     * @User: yfl
     * @Time: 2017年10月10日 10:12:07
     * @description:数据库驱动注册 实例化
     */
    public function DriverRegister($databaseType)
    {
        if (isset($databaseType) && !empty($databaseType)) {
            $includePath = ini_get('include_path');
            $driverFile = $includePath . $databaseType . '.php';
            if (file_exists($driverFile)) {
                require_once "{$driverFile}";
                $this->Driver = new $databaseType();
                return true;
            } else {
                return false;
            }
        }
    }

    /**
     * @param $host
     * @param $user
     * @param $password
     * @param $database
     * @User: yfl
     * @Time: 2017年10月10日 10:18:43
     * @description:连接数据库
     */
    public function connect($host, $user, $password, $database)
    {
        $this->Driver->host = $host;
        $this->Driver->user = $user;
        $this->Driver->password = $password;
        $this->Driver->database = $database;
        $this->connection = $this->Driver->Connect();
    }

    /**
     * @User: yfl
     * @Time: 2017年10月10日 10:20:29
     * @description:关闭数据裤
     */
    public function close()
    {
        $this->Driver->Close($this->connection);
    }

    /**
     * @param $queryStr
     * @return mixed
     * @User: yfl
     * @Time: 2017年10月10日 10:22:32
     * @description:执行sql语句
     */
    public function query($queryStr)
    {
        return $this->Driver->query($queryStr);
    }

    /**
     * @param $res
     * @return mixed
     * @User: yfl
     * @Time: 2017年10月10日 10:23:55
     * @description: 获得行
     */
    public function getRows($res)
    {
        return $this->Driver->getRows($res);
    }

    /**
     * @param $res
     * @return mixed
     * @User: yfl
     * @Time: 2017年10月10日 10:25:08
     * @description: 获得行数
     */
    public function getRowsNum($res)
    {
        return $this->Driver->getRowsNum($res);
    }
}
